1. Field of the Invention
This invention is related to display frame generation and video encoding.
2. Description of the Related Art
Video sequences are often compressed to reduce bandwidth, transmission latency, memory footprint, and other resource consumption. Other forms of encoding can be implemented as well, such as encryption for security purposes, conversion from one video format to another, etc. A variety of encoding standards exist, including Motion Picture Experts Group (MPEG), H.261, H.262, H.263, H.264, High Efficiency Video Coding (HEVC), Windows Media Video (WMV), etc.
Video sequences include a set of frames that are displayed at a given frame rate (e.g. 15 frames per second (fps), 30 fps, 60 fps, and even 120 fps). Encoding a video sequence frequently includes determining which parts of the frames are changing from frame to frame, detecting redundant information in frames, detecting areas of low “energy” or “entropy” in frames, etc. Accordingly, a variety of statistics may be generated over the frame data to determine various aspects of the encoded video.
When the video encoding is implemented partially or fully in hardware, the generation of the statistics for a given frame frequently occurs in parallel with reading the frame data for the given frame. That is, the frame data is read for encoding and is also processed to generate statistics. Accordingly, determinations as to how to encode the frame (e.g. selecting from among various frame types supported by the encoding system being used) often are required to be made based on incomplete, predicted, or estimated data. In some cases, a less optimal encoding results from the inaccurate statistics that are available for use during the encoding process.